package com.namecard.namecardapi.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.namecard.namecardapi.entity.DTO.LyUserReq;
import com.namecard.namecardapi.entity.LyUser;

import java.util.List;

/**
 * 领英用户表(LyUser)表服务接口
 *
 * @author makejava
 * @since 2024-08-06 13:38:34
 */

public interface LyUserService extends IService<LyUser> {

    /**
     * 批量创建索引，执行存储过程的方式
     */
    void createIndexes();

    /**
     * 批量删除索引，执行存储过程的方式
     */
    void dropIndexes();

    /**
     * 根据姓名模糊查询
     * @param fullName 姓名
     * @return List<User>
     */

    List<LyUser> getLikeFullName(String fullName);

    /**
     * 根据邮箱等值查询第一个
     * @param email 邮箱
     * @return LyUser
     */
    LyUser getFirstByEmail(String email);

    /**
     * 根据手机号等值查询第一个
     * @param mobile 手机号
     * @return LyUser
     */
    LyUser getFirstByMobile(String mobile);

    /**
     * 根据手机号右模糊查询
     * @param mobile 手机号
     * @return List<User>
     */
    List<LyUser> getLikeRightMobile(String mobile);

    /**
     * 根据国家查询
     * @param locationCountry 国家
     * @return List<User>
     */
    List<LyUser> getByLocationCountry(String locationCountry);

    /**
     * 根据查询条件内容分页查询
     * @param lyUserReq 查询条件
     * @return List<User>
     */
    Page<LyUser> getByQuery(LyUserReq lyUserReq);
}

